<template>
  <div>
    <el-dialog :title="title" :close-on-click-modal="false" v-dialogDrag :visible.sync="visible">
      <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method === 'view' ? 'readonly' : ''"
        :disabled="method === 'view'" label-width="120px">
        <el-row :gutter="15">
          <el-col :span="12">
            <el-form-item label="贷款类型" prop="loanType" :rules="[]">
              <el-select v-model="inputForm.loanType" placeholder="请选择贷款类型" style="width: 100%;">
                <el-option v-for="item in $dictUtils.getDictList('loan_method')" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="利率（%）" prop="loanNum" :rules="[{ validator: validator.isNumber, trigger: 'blur' }]">
              <el-input v-model="inputForm.loanNum" placeholder="请填写利率"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="备注信息" prop="remarks" :rules="[]">
              <el-input type="textarea" v-model="inputForm.remarks" placeholder="请填写备注信息"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="visible = false">关闭</el-button>
        <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" v-noMoreClick>确定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        title: "",
        method: "",
        visible: false,
        loading: false,
        inputForm: {
          id: "",
          loanType: "1",
          loanNum: "",
          remarks: "",
        },
      };
    },
    components: {},
    methods: {
      init(method, id) {
        this.method = method;
        this.inputForm.id = id;
        if (method === "add") {
          this.title = `新建贷款费率配置`;
        } else if (method === "edit") {
          this.title = "修改贷款费率配置";
        } else if (method === "view") {
          this.title = "查看贷款费率配置";
        }
        this.visible = true;
        this.loading = false;
        this.$nextTick(() => {
          this.$refs.inputForm.resetFields();
          if (method === "edit" || method === "view") {
            // 修改或者查看
            this.loading = true;
            this.$http({
              url: `/tlendingrates/tLendingRates/queryById?id=${this.inputForm.id}`,
              method: "get",
            }).then(({ data }) => {
              this.inputForm = this.recover(this.inputForm, data.tLendingRates);
              this.loading = false;
            });
          }
        });
      },
      // 表单提交
      doSubmit() {
        this.$refs["inputForm"].validate((valid) => {
          if (valid) {
            this.loading = true;
            this.$http({
              url: `/tlendingrates/tLendingRates/save`,
              method: "post",
              data: this.inputForm,
            }).then(({ data }) => {
              this.loading = false;
              if (data && data.success) {
                this.visible = false;
                this.$message.success(data.msg);
                this.$emit("refreshDataList");
              }
            });
          }
        });
      },
    },
  };
</script>